Instruction Scheduling Beyond Basic Blocks

نویسندگان

  • Martin Charles Golumbic
  • Vladimir Rainish
چکیده

Instruction scheduling consists of the rearrangement or transformation of program statements, usually at the intermediate language or assembly code level, in order to reduce possible run-time delays between instructions. Such transformations must preserve data dependency and are subject to other constraints. Highly optimizing compilers employing instruction-scheduling techniques have proven to be effective in improving the performance of pipeline processors. Considerable attention has been given to scheduling code within the scope of basic blocks, i.e., straight-line sections of code. In this paper we present techniques for scheduling beyond basic blocks. This allows a further reduction in run-time delays such as those due, e.g., to branches and loops, enabling the exploiting of pipeline architectures which would not otherwise be possible.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Constraint Programming Techniques for Optimal Instruction Scheduling

Modern processors have multiple pipelined functional units and can issue more than one instruction per clock cycle. This puts great pressure on the instruction scheduling phase in a compiler to expose maximum instruction level parallelism. Basic blocks and superblocks are commonly used regions of code in a program for instruction scheduling. Instruction scheduling coupled with register allocati...

متن کامل

cient Instruction Scheduling Using Finite State Automata

Modern compilers employ sophisticated instruction scheduling techniques to shorten the number of cycles taken to execute the instruction stream. In addition to correctness, the instruction scheduler must also ensure that hardware resources are not oversubscribed in any cycle. For a contemporary processor implementation with multiple pipelines and complex resource usage restrictions , this is no...

متن کامل

Compiler Optimization for Superscalar Systems: Global Instruction Scheduling without Copies

Vol. 10 No. 1 1998 Many of today’s computer applications require computation power not easily achieved by computer architectures that provide little or no parallelism. A promising alternative is the parallel architecture, more specifically, the instruction-level parallel (ILP) architecture, which increases computation during each machine cycle. ILP computers allow parallel computation of the lo...

متن کامل

Data-Dependency Graph Transformations for Instruction Scheduling

Instruction scheduling is one of the most important code optimizations because of its role in increasing processor utilization. Instruction scheduling reorders instructions to minimize pipeline stalls while preserving program semantics. For realistic processor models, this problem is NP-hard, and numerous heuristic and optimal (enumerative) techniques have been proposed. Heuristics can sometime...

متن کامل

Extending List Scheduling to Consider Execution Frequency

Frequency-Based List Scheduling (FBLS) extends standard List Scheduling by considering execution frequencies within a schedule. This is useful for global instruction scheduling methods that schedule groups of basic blocks, called meta-blocks, as though they were a single block. Traditional local schedulers operate on the premise that each instruction is executed the same number of times as ever...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • IBM Journal of Research and Development

دوره 34  شماره 

صفحات  -

تاریخ انتشار 1990